package com.yxx.servicealbum.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yxx.model.album.AlbumAttributeValue;
import com.yxx.model.album.AlbumInfo;
import com.yxx.query.album.AlbumInfoQuery;
import com.yxx.vo.album.AlbumInfoVo;
import com.yxx.vo.album.AlbumListVo;
import com.yxx.vo.album.AlbumStatVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author yuxiangxun
 * @date 2025/3/16
 * @apiNote
 */
public interface AlbumInfoService extends IService<AlbumInfo> {

    void saveAlbumInfo(AlbumInfoVo albumInfo, Long userId);

    IPage<AlbumListVo> findUserAlbumPage(Page<AlbumListVo> albumInfoPage, @Param("vo") AlbumInfoQuery albumInfoQuery);

    void removeAlbumInfoById(Long id);

    AlbumInfo getAlbumInfoById(Long id);

    void updateAlbumInfo(Long id, AlbumInfoVo albumInfoVo);

    List<AlbumInfo> findUserAllAlbumList(Long userId);

    List<AlbumAttributeValue> findAlbumAttributeValueByAlbumId(Long albumId);

    AlbumStatVo getAlbumStatVoByAlbumId(Long albumId);

    void updateStat(Long albumId, String albumStatPlay, Integer count);

}
